package com.example.kuaizu.utils;

import java.time.LocalTime;

/**
 * @author: wangmx15
 * @date: 2025/9/6
 **/
public class TimeUtil {

    /**
     * 判断当前时间是否在指定时间段内
     * 如果startHour小于endHour 说明是当前天
     * 如果startHour大于endHour 说明是今天到明天之间
     */
    public static boolean isBetweenNightAndMorning(int startHour, int endHour) {
        if (startHour == endHour) {
            return false;
        }
        LocalTime now = LocalTime.now();
        LocalTime start;
        LocalTime end;
        if (startHour > endHour) {
            //表示今天到明天之间
            start = LocalTime.of(startHour, 0);  // 22:00
            end = LocalTime.of(endHour, 0);    // 7:00
            // 因为跨天了，所以需要特殊判断
            return now.isAfter(start) || now.isBefore(end);
        } else {
            //当天时间段内
            start = LocalTime.of(startHour, 0);
            end = LocalTime.of(endHour, 0);
            // 判断当前时间是否在7:00到22:00之间（不包含22:00）
            return now.isAfter(start) && now.isBefore(end);
        }
    }
}
